package com.zmn.plat.business.interfaces.orderconfig.track;

import java.util.List;

import com.zmn.plat.common.dto.orderconfig.track.OrderTrackDIO;
import com.zmn.plat.common.dto.orderconfig.track.OrderTrackDRO;
import com.zmn.plat.model.entity.orderconfig.track.OrderTrack;
import com.zmn.plat.model.vo.orderconfig.track.OrderTrackVO;

/**
 * @author tanbiao
 * @description
 * @modifier
 * @since 2020/11/19 14:35
 **/
public interface OrderTrackBService {
    /**
     * 描述：根据主键获取详情（二级缘由存在多个，需要另外处理）
     * 
     * @param trackId
     * @author tanbiao
     * @since 2020/11/19 14:37
     * @return com.zmn.plat.model.vo.orderconfig.track.OrderTrackVO
     * @modifier
     */
    OrderTrackVO getById(Integer trackId);

    /**
     * 描述：根据主键获取详情（二级缘由存在多个，需要另外处理,并将实体转换为DRO）
     * 
     * @param trackId
     * @author tanbiao
     * @since 2020/11/19 14:37
     * @return com.zmn.plat.model.vo.orderconfig.track.OrderTrackVO
     * @modifier
     */
    OrderTrackDRO getByTrackId(Integer trackId);

    /**
     * 描述：根据主键获取详情（二级缘由存在多个，需要另外处理）
     * 
     * @param trackIds
     * @author tanbiao
     * @since 2020/11/19 14:37
     * @return List
     * @modifier
     */
    List<OrderTrackDRO> listByTrackIds(List<Integer> trackIds);

    /**
     * 描述：根据跟单类型和业务类型查询订单配置内容主信息
     *
     * @param categId
     * @param bizType
     * @author tanbiao
     * @since 2020/11/19 14:37
     * @return List
     * @modifier
     */
    List<OrderTrackDRO> listByCategIdAndBizType(Integer categId, Integer bizType);

    /**
     * 描述：根据主键获取详情（二级缘由存在多个，需要另外处理）
     * 
     * @param dio
     * @author tanbiao
     * @since 2020/11/19 14:37
     * @return List
     * @modifier
     */
    List<OrderTrackDRO> listByDIO(OrderTrackDIO dio);

    /**
     * 描述：新增修改（二级缘由名称不重复，个数不大于10个）
     * 
     * @param vo
     * @author tanbiao
     * @since 2020/11/19 14:37
     * @return com.zmn.plat.model.vo.orderconfig.track.OrderTrackVO
     * @modifier
     */
    Integer addEdit(OrderTrack vo, String operator);

}
